#pragma once
#include <iostream>
#include <string>
using namespace std;


class Task {
    public :
    // 构造函数
    Task() {

    }
    Task(const int x, const int y, const char op)
        :_x(x)
        ,_y(y)
        ,_op(op) 
        ,_ret(0)
        ,_code(0)
    {}
    void run() {
        switch (_op) {
            case '+' :
            _ret = _x + _y;
                break;
            case '-' :
            _ret = _x - _y;
                break;
            case '*' :
            _ret = _x * _y;
                break;
            case '/' :
                {
                    if (_y == 0) {
                        _code = -1;
                        _ret = -1;
                    } else {
                        _ret = _x / _y;
                    }   
                }
                break;
            case '%' :
                {
                    if (_y == 0) {
                        _ret = -1;
                        _code = -1;
                    } else {
                        _ret = _x % _y;
                    }
                }
                break;
            default :
                _code = -2;
                break;
            
        }
    }
    Task operator=(const Task& task) {
        _x = task._x;
        _y = task._y;
        _ret = task._ret;
        _op = task._op;
        _code = task._code;
        return *this;
    }
    ~Task() {

    }
    public :
    int _x;
    int _y;
    char _op;
    int _ret;
    int _code;
};